<template>
	<view class="detail">
		<view class="title">
			{{newsItemDetail.title}}
		</view>
		
		<view class="info">
			<view class="author">作者: {{newsItemDetail.author}}</view>
			<view class="publish-time">发布时间：{{newsItemDetail.posttime}}</view>
		</view>
		
		<!-- <view class="content" v-html="newsItemDetail.content"></view> -->
		<view class="content">
			<!-- uniapp解析带有html5的字符串 -->
			<rich-text :nodes="newsItemDetail.content">
			</rich-text>
		</view>
		
		<view class="footer">
			声明：本站的内容均采集与腾讯新闻，如果侵权请联系管理（513894357@qq.com）进行整改删除，本站进行了内容采集不代表本站及作者观点，若有侵犯请及时联系管理员，谢谢您的支持。
		</view>
	</view>
</template>

<script>
import { API_SERVER_HOST } from '../../utils/common';
import { parseTime } from '../../utils/tool.js'
	export default {
		onLoad(params) {
			this.options = params
		},
		onShow(){
			this.init()
		},
		onUnload(){
			// 当页面离开时，将此新闻记录到本地缓存当中
			console.log('detail 页面卸载了')
			this.saveHistoryRecord()
		},
		data() {
			return {
				options: {cid: '', id: ''},
				newsItemDetail: ''
			};
		},
		methods: {
			saveHistoryRecord(){
				let historyRecords = uni.getStorageSync('historyRecords')
				
				const {id, classid, picurl, title} = this.newsItemDetail
				
				const lookTime = parseTime(Date.now())
				const historyRecord = {id, classid, picurl, title, lookTime}
				
				// historyRecords还有一个简写形式
				// historyRecords = uni.getStorageSync('historyRecords') || []
				
				if(!historyRecords){ // 若历史记录初始为空，进行初始化
					historyRecords = []	
				} else {
					// 若历史记录初始不为空, 说明之前浏览过新闻，则进行添加
					// debugger
					// 一条新闻很可能被多次浏览，但历史记录中仅需保留1次，故需要去重
					// 在添加新纪录之前，需要保证若原数组存在与新纪录相同id的元素，需全部删除
					historyRecords = historyRecords.filter(item => item.id != historyRecord.id)
				
				}
				
				// 最终将新记录放到浏览记录中
				historyRecords.unshift(historyRecord)
				
				uni.setStorageSync('historyRecords', historyRecords)
				console.log('historyRecords: ', historyRecords)
			},
			init(){
				uni.request({
					url: `${API_SERVER_HOST}/dataApi/news/detail.php`,
					data: {
						cid: this.options.categoryId,
						id: this.options.newsItemId
					},
					success: (res) => {
						// 使用正则表达式替换带有<img 的字符串
						// 即 <img  -> <img style="max-width:100%;"
						res.data.posttime = parseTime(res.data.posttime)
						res.data.content = res.data.content.replace(/<img/gi, '<img style="max-width:100%;" ')
						this.newsItemDetail = res.data
						uni.setNavigationBarTitle({
							title: res.data.title
						})
					}
				})
			}
		}
	}
</script>

<style lang="scss" scoped>
.detail {
	padding: 30rpx;
	.title{
		font-size: 46rpx;
		color: #333;
	}
	.info {
		display: flex;
		justify-content: space-between;
		margin: 30rpx 0;
		padding: 20rpx 20rpx;
		background-color: #f6f6f6;
		font-size: 30rpx;
		color: #666;
	}
	.content {
		padding-bottom: 50rpx;
		img {
			max-width: 100%;
		}
	}
	.footer{
		padding: 20rpx;
		background-color: #fef0f0;
		font-size: 26rpx;
		color: #f89898;
		line-height: 1.8em;
	}
}
</style>
